Methods and systems for calling into meeting

ABSTRACT

Systems and methods for joining a video conference. A first function can be found, wherein the first function can interact with a user interface element and can be used to call a video conference bot. The first function can be replaced with a second function; wherein the second function can be used to call the video conference bot but may not interact with the user interface element. The second function can be used to join the video conference without interacting with the DOM.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation to U.S. application Ser. No.16/518,367 filed on Jul. 22, 2019, titled “METHODS AND SYSTEMS FORCALLING INTO MEETING.” This application is herein incorporated byreference in its entirety.

DESCRIPTION OF DRAWINGS

FIG. 1A illustrates a system for calling into a video conference (e.g.,meeting) without interacting with a user interface element, according toan embodiment.

FIG. 1B also illustrates a system for calling into a video conference(e.g., meeting) without interacting with a user interface element,according to an embodiment.

FIG. 2 illustrates calling into a Zoom meeting, according to anembodiment.

FIG. 3 illustrates calling into a WebEx meeting, according to anembodiment.

FIG. 4 illustrates calling into an UberConference meeting, according toan embodiment.

FIG. 5 illustrates calling into a Join.me meeting, according to anembodiment.

FIG. 6 illustrates calling into a GoToMeeting, according to anembodiment.

DESCRIPTION OF EMBODIMENTS OF THE INVENTION

FIGS. 1A-1B illustrate a system for calling into a video conference(e.g., meeting) without interacting with a user interface element (e.g.,a document object model (DOM), a graphical user interface (GUI), a userinterface (UI)), according to an embodiment. The video conference can bejoined using, for example, the Internet or an Intranet. The DOM can bean application programming interface (API) (e.g., the graphical userinterface (GUI). It can define the logical structure of documents andthe way a document is accessed and manipulated. The video conference canbe called without interacting with the DOM (or GUI, or UI) by, forexample, entering meeting details (e.g., the name of the bot, themeeting ID), clicking buttons to activate the session, etc.). The systemcan be used with previously existing code (e.g., see the examples ofFIGS. 2 and 4 below, where Zoom and UberConference are used) or newlyincorporated code (e.g., see the examples of FIGS. 3, 5 and 6 below,where WebEx, Join.me, and GoToMeeting are used).

In FIG. 1A, a human conference participant computer 105 can join thevideo conference and optionally participate. The human conferenceparticipant computer 105 can use a Web browser, desktop conferencingapplication, cell phone, etc. A human conference host computer 110 canjoin the video conference and optionally participate. The humanconference host computer 110 can use a Web browser, desktop conferencingapplication, cell phone, etc. A recording bot server 115 can join thevideo conference, and record the audio and/or video, but notparticipate. The recording bot server 115 can use a Web browser withcustom extensions and a frozen version of the functions referenced inFIGS. 2-6 below.

In FIG. 1B, the recording bot server 115 can initiate a Chrome browser150 with a custom extension designed for a particular video conferenceplatform 155 (e.g., for WebEx, Join.me, GoToMeeting, Zoom,UberConference). The appropriate Chrome extension module can be loadedbased on the meeting platform in use. The Chrome browser 150 can requesta connection to the video conference platform. In some embodiments,rather than have the video conference platform provide the Chromebrowser 150 with its version of code, a code freezer module 160 canintercept some of the requests for code that the video conferenceplatform would return and instead return a frozen version of code thatincludes either modified versions of the code, or versions of code thatexpose certain underlying functions, as described in detail in FIGS.2-6. Upon receiving the frozen code, the Chrome browser 150 can initiatecustom-designed Chrome extensions (e.g., WebEx Chrome extension 165,Join.me Chrome extension 170, GoToMeeting Chrome extension 175, ZoomChrome extension 180, UberConference Chrome extension 185) that caninteract with the frozen code in order to record the meeting.

FIGS. 2-6 illustrates example methods for calling into a meeting withoutinteracting with the DOM. FIG. 2 references calling into a Zoom meeting,according to an embodiment. FIG. 3 references calling into a WebExmeeting, according to an embodiment. FIG. 4 references calling into anUberConference meeting, according to an embodiment. FIG. 5 referencescalling into a Join.me meeting, according to an embodiment. FIG. 4references calling into a GoToMeeting, according to an embodiment.

With respect to the Zoom meeting in FIG. 2, In 205, a search can beperformed for an underlying function that is used to call the botdirectly without interacting with the DOM itself. For example, anexisting function that is normally used to start the meeting can befound. In one embodiment, the function can reference the DOM (or GUI) asfollows:

   function formSubmit( ) {     var confNo =Trim($(‘#join-confno’).val( ));     var username =$(‘#join-username’).val( );    }

In 210, the found underlying function can be modified so that it takesparameters instead of referencing the DOM (or GUI). For example, thefollowing can be used instead of the two lines above in bold thatreference the DOM:

-   function formSubmit(confNo, userName)

In 215, the modified function can be invoked with values obtained fromour system instead of from the DOM (or GUI) in order to join the meetingbot. For example:

-   joinmeeting.formSubmit(callInNumber, botName)

With respect to the WebEx meeting in FIG. 3, in 305, a function thatWebEx uses to launch a meeting is identified:

  function _getLaunchCalendarMeetingFunc( ) {    const elem =document.querySelector(“.meeting-join”)    return elem &&    elem._vue_&&    typeof elem._vue_.smartLaunchMeeting === ‘function’ &&   elem._vue_.smartLaunchMeeting   }

In 310, a differently named reference to Webex's smartLaunchMeetingfunction can be obtained:

-   const launchCalendarMeetingFunc=_getLaunchCalendarMeetingFunc( );

In 315, Webex's smartLaunchMeeting function can be invoked to start themeeting without interacting with the GUI (e.g., clicking any buttons):

-   launchCalendarMeetingFunc(‘thinclientjoin’);

With respect to the UberConference meeting in FIG. 4, in 405, thefunction that causes the page to join the meeting can be identified:

  const obj = {  _next: function(n) {   // ...   , u = r.name.$el.val( )  , d = r.name.$el.val( )   // ...  } }

In 410, the code can be modified so that it no longer references theGUI. For example, see how the code in bold changes from the codeillustrated for 405:

  const obj = {  _next: function(n) {   // ...   , u = _botName   , u =_botEmail // ...  } }

In 415, the modified code can be invoked to launch the UberConferencemeeting:

-   this._next( )

With respect to the to the Join.me meeting in FIG. 5, in 505, anexisting function that is called in the normal flow of a user joiningthe meeting is located. For example, the following function can befound:

  function ( ) {    e.$broadcast(“Visitor.Join”,t.visitorNameCtrl.visitorName)   }

In 510, the function is given a new (e.g., global) name so that it canbe referenced in a later window. For example:

  JOINME_LOGIN_ = function ( ) {    e.$broadcast(“Visitor.Join”,t.visitorNameCtrl.visitorName)   }

In 515, the new reference can be used to invoke the underlying functionin a later window. For example:

JOINME_LOGIN_( )

With respect to the GoToMeeting in FIG. 6, in 605, an existing functionthat is called in the normal flow of a user joining a meeting can belocated. For example:

function ( ) {e.submit( )}

In 610, the function is given a new (e.g., global) name so that it canbe referenced in a later window. For example:

-   submitMyForm=function ( ) {e.submit( )}

In 615, the new reference can be used to invoke the underlying functionin a later window. For example:

submitMyForm( )

While various embodiments have been described above, it should beunderstood that they have been presented by way of example and notlimitation. It will be apparent to persons skilled in the relevantart(s) that various changes in form and detail may be made thereinwithout departing from the spirit and scope. In fact, after reading theabove description, it will be apparent to one skilled in the relevantart(s) how to implement alternative embodiments. Thus, the presentembodiments should not be limited by any of the above-describedembodiments.

In addition, it should be understood that any figures which highlightthe functionality and advantages are presented for example purposesonly. The disclosed methodology and system are each sufficientlyflexible and configurable such that they may be utilized in ways otherthan that shown. For example, the steps and/or limitations may beperformed in a different order then that shown in the specificationand/or claims.

Although the term “at least one” may often be used in the specification,claims and drawings, the terms “a”, “an”, “the”, “said”, etc. alsosignify “at least one” or “the at least one” in the specification,claims and drawings.

Additionally, the terms “including”, “comprising” or similar terms inthe specification, claims and drawings should be interpreted as meaning“including, but not limited to.”

Finally, it is the applicant's intent that only claims that include theexpress language “means for” or “step for” be interpreted under 35U.S.C. 212, paragraph 6. Claims that do not expressly include the phrase“means for” or “step for” are not to be interpreted under 35 U.S.C. 212,paragraph 6.

What is claimed is:
 1. A method for joining a video conference,comprising: finding a first function, wherein the first functioninteracts with a user interface element and is used to call a videoconference bot; replacing the first function with a second function;wherein the second function is used to call the video conference bot butdoes not interact with the user interface element; and using the secondfunction to join the video conference without interacting with thedocument object model (DOM).